package _07线程控制;


/**
 * @author Administrator
 */
public class DaemonThreadDemo {

    // 贾宝玉 主线程睡觉
    // 袭人 扇扇子
    // 晴雯 扇扇子

    public static void main(String[] args) throws InterruptedException {
        DaemonThread t1 = new DaemonThread();
        t1.setName("袭人");
        DaemonThread t2 = new DaemonThread();
        t2.setName("晴雯");

        // 主线程如果停止 子线程也会终止
        // 实现守护线程的方法是在线程start()之前setDaemon(true)
        // 否则会抛出一个IllegalThreadStateException异常
        t1.setDaemon(true);
        t2.setDaemon(true);

        t1.start();
        t2.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("贾宝玉 睡觉中" + i);
            Thread.sleep(500);
        }

    }
}

class DaemonThread extends Thread {
    @Override
    public void run() {
        while (true) {
            System.out.println(Thread.currentThread().getName() + ":扇扇子");
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
